// 输入包含多行，每行为一条聊天记录，其格式为“昵称:消息内容”（冒号为英文冒号）。保证昵称和消息内容仅由大写及小写字母和英文空格组成（不一定是大写字母开头），且昵称中不包含空格，消息不会由空格结尾。保证最多只有500行聊天记录，昵称长度10字符以内，消息内容长度30字符以内。

// 输出描述
// 第一行输出一个整数n，表示可能是复读机的人的数量。接下来输出n行，每行一个字符串，为可能是复读机的人的昵称，输出的昵称按字典序排序(先按照第一个字母、以 A、B、C……Z、a、b、c……z 的顺序排列，所有大写字母在所有小写字母前；如果第一个字母一样，那么比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长，比如：sigh 和 sight，那么把短者排在前)。


// 样例输入
// Tom:Hello
// Petter:Hello
// Tom:How are you
// John:I am fine
// Petter:How are you
// Addy:Hello
// 样例输出
// 2
// Addy
// Petter

// 提示
// 输入样例 2

// Tom:Hello
// Petter:Hi
// Tom:Hi

// 输出样例2

// 0

// 输入样例 3

// Ann:Hello

// alicy:Hello

// Bob:Hello

// ben:Hello

// beng:Hello

// Ben:Hello

// bEn:Hello

// benG:Hello

// 输出样例3

// 7

// Ben

// Bob

// alicy

// bEn

// ben

// benG

// beng

// 样例说明

// 在样例1中，Petter和Addy每一句话都是重复别人的。在样例2中，Tom第一句话不是复读的。在样例3中，除了第一次说话的Ann都是复读别人，只需注意按字典序输出名字即可。


#include<bits/stdc++.h>
using namespace std;

int main(int argc, char const *argv[])
{
    string str;
    unordered_map<string,vector<string>> hash_p;
    unordered_map<string,vector<string>> hash_s;
    while(getline(cin,str)){
        if(str.size()==0){
            break;
        }
        string s1="";
        string s2="";
        for(int i=0;i<str.size();++i){
            if(str[i]!=':'){
                s1= s1+str[i];
            }
            else{
                break;
            }
        }
        for(int i=str.size()-1;i>=0;--i){
            if(str[i]!=':'){
                s2= str[i]+s2;
            }
            else{
                break;
            }
        }
        hash_p[s1].emplace_back(s2);
        hash_s[s2].emplace_back(s1);
    }
    vector<string> res;
    int cnt=0;
    for(auto p:hash_p){
        int flag=0;
        for(int i=0;i<p.second.size();++i){
            string s=p.second[i];
            if(p.first==hash_s[s][0]){
                continue;
            }
            else{
                ++flag;
            }
        }
        if(flag==p.second.size()){
            res.emplace_back(p.first);
            ++cnt;
        }
    }
    cout<<cnt<<endl;
    sort(res.begin(),res.end());
    for(auto i:res){
        cout<<i<<endl;
    }
    return 0;
}
